package com.crm.consumerdeptfeign;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@EnableEurekaClient
/**
 * 在启动该微服务式是能去加载我们定义的Feign配置类
 */
@EnableFeignClients(basePackages = {"com.crm"})//1.扫描本模块的包和引入的模块包(api)
@ComponentScan("com.crm") //2.扫描本模块的包和引入的模块包(api)
                          //由1和2得，ConfigBean中设置的负载均衡算法仍然有效
/**
 * Feign 集成了 Ribbon
 * 利用Ribbon维护了 springcloud-dept 的服务列表信息，并且通过轮询实现了客户端的负载均衡
 * 而与Ribbon不同的是，通过Feign只需要定义服务绑定接口且以声明式的方法，优雅而简单的实现了服务调用
 */
public class ConsumerDeptFeignApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerDeptFeignApplication.class, args);
    }

}
